import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.List;
import Back.MAP;
import Back.ReplayPanel;
import Dao.dt;

public class test {
    public static void main(String[] args) {
        // 创建主窗口
        JFrame frame = new JFrame("回放选择器");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.setLayout(null); // 使用绝对布局

        // 数据库连接
        dt dao = new dt();
        dao.connect();

        // 加载所有回放名称
        List<String> replayNames = dao.getReplayNames();

        // 创建下拉选择框（JComboBox）
        JComboBox<String> replayComboBox = new JComboBox<>(replayNames.toArray(new String[0]));
        replayComboBox.setBounds(0, 25, 100, 30); // 设置位置和大小
        frame.add(replayComboBox);

        // 创建播放按钮
        JButton playButton = new JButton("播放选中回放");
        playButton.setBounds(130, 25, 100, 30); // 设置按钮位置和大小
        playButton.addActionListener(e -> {
            // 获取选中的回放名称
            String selectedName = (String) replayComboBox.getSelectedItem();
            if (selectedName != null) {
                // 获取回放数据
                MAP mapData = dao.getnewmap(selectedName);
                mapData.allpath=dao.createCarPathArray(selectedName, mapData.carcount, mapData.max_time);
                if (mapData != null) {
                    // 创建回放面板
                    ReplayPanel replayPanel = new ReplayPanel(mapData);

                    // 新建窗口展示回放面板
                    JFrame replayFrame = new JFrame("回放：" + selectedName);
                    replayFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                    replayFrame.setSize(800, 800);
                    replayFrame.add(replayPanel, BorderLayout.CENTER);
                    replayFrame.setVisible(true);
                }
            }
        });

        // 添加播放按钮
        frame.add(playButton);

        // 显示窗口
        frame.setVisible(true);

        // 应该在程序退出前再关闭连接（比如窗口关闭时）
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosed(WindowEvent e) {
                dao.closeConnection(); // ✅ 确保所有数据库操作完成后再关闭
            }
        });
    }
}
